#ifndef ARRAY_HPP
#define ARRAY_HPP

#include <stdlib.h> // NULL

class ArrayInt{
	int *data; // Указатель на начало массива
	size_t size; // size_t <=> unsigned int
public:
	ArrayInt(); // Конструктор по умолчанию
	explicit ArrayInt(const size_t n);  // explicit - запрещает неявное
										// преобразование int в ArrayInt

	~ArrayInt(); // Деструктор

	ArrayInt(const ArrayInt &A); // Конструктор копирования
	
	const ArrayInt& operator=(const ArrayInt &rhs); // Переопределение оператора присваивания
	
	int& operator[](const size_t indx); // Переопределение операции индексрования
	
	const int& operator[] (const size_t indx) const; // Для индексирования константных объектов
	
	size_t length() const; // Просто возвращает длинную массива
};

#endif


